package com.moioo.vod;

import com.moioo.vod.action.*;
import com.moioo.exam.*;

import java.util.*;

import org.hibernate.Transaction;

public class UserOnLine extends TimerTask {
	boolean run=false;
	public void run()
	{
		if (this.run)return;
		synchronized(UserLogAction.UserLogMap)
		{
			if (UserLogAction.UserLogMap==null)return;
			this.run=true;
			try
			{
				Iterator it=UserLogAction.UserLogMap.entrySet().iterator();
				long time=new Date().getTime()-600000;
				while(it.hasNext())  
				{  
				  Map.Entry entry=(Map.Entry)it.next();  
				  String key=(String)entry.getKey();  
				  TUserLog userlog=(TUserLog)entry.getValue();
				  if (time<userlog.getEndtime().getTime())continue;
				  if (userlog.getStarttime().getTime()<userlog.getEndtime().getTime())
				  {
					  TUserLogDAO dao = new TUserLogDAO();
					  Transaction tran = dao.getSession().beginTransaction();
					  dao.save(userlog);
					  tran.commit();
					  dao.getSession().clear();
				  }
				  UserLogAction.UserLogMap.remove(key);
				} 
			}catch(Exception e)
			{
				e.printStackTrace();
			}
			this.run=false;
		}
	}
}